# 单行注释

#[[
括号注释
]]

# cmake最低版本要求
cmake_minimum_required(VERSION 3.20)

# 项目名称
project(message)

# cmake -S . -B build 时，打印message内容
message("参数1") # 测试message
message("参数p1" #[[此处可以加括号注释]] "参数p2" "p3")  # 多个参数在打印时，会自动拼接

## 指定日志级别
# 1、FATAL_ERROR：报错，进程退出，生成退出
# stderr
# message(FATAL_ERROR "TEST FATAL_ERROR")
# message("after FATAL_ERROR") # 不再显示

# 2、SEND_ERROR：报错，进程继续，生成退出，不会生成 add_executable add_library
# 会打印信息路径和行号，stderr
message(SEND_ERROR "TEST SEND_ERROR")

# 不再生成可执行程序
add_executable(test_message test_message.cpp)
message("after ERROR") # 显示

# 3、WARNING：会打印信息路径和行号，stderr
message(WARNING "TEST WARNING")

# 4、NOTICE，默认等级
# 不会打印信息路径和行号，stderr
message(NOTICE "TEST NOTICE")

# 5、STATUS，会加前缀 --
# stdout
message(STATUS "TEST STATUS")

# 6、VERBOSE，会加前缀 --
# 默认不显示，一般填写用户需要的详细信息，stdout
message(VERBOSE "TEST VERBOSE")

# 设置日志显示级别
# cmake -S . -B build --log-level=VERBOSE

# 标准输出重定向：将 stdout 填入日志文件中
# cmake -S . -B build --log-level=VERBOSE > log_out.txt

# 所有输出重定向：将 输出 填入日志文件中
# cmake -S . -B build --log-level=VERBOSE > log.txt 2>&1

# 7、DEBUG，加前缀 --
message(DEBUG "test DEBUG")

# 8、TRACE，加前缀 --
# cmake -S . -B build --log-level=TRACE
message(TRACE "test TRACE")

message("================================================================")
## 查找库日志

#[[
CHECK_START 开始记录将要执行检查的消息
CHECK_PASS 记录检查的成功结果
CHECK_FAIL 记录不成功的检查结果
]]

# 开始查找xcpp的代码
message(CHECK_START "Find xcpp")

# 添加message消息缩进
set(CMAKE_MESSAGE_INDENT "--") # 修改配置

# 嵌套查找
# 查找xlog的代码
message(CHECK_START "Find xlog")
message(CHECK_PASS "Find") 

# 查找xthreadpool
message(CHECK_START "查找xthreadpool")
message(CHECK_FAIL "Not found")

# 取消message消息缩进
set(CMAKE_MESSAGE_INDENT "") # 修改配置

# 结束查找xcpp
# 前面会自动拼接 “开始查找” 的内容
message(CHECK_FAIL "Not found") # 查找失败
